package map;

import java.util.Collection;
import java.util.HashMap;
import java.util.Map;
import java.util.Set;

/**
 * Map的遍历
 * Map支持三种遍历方式
 * 1:单独遍历key
 * 2:遍历每一组键值对
 * 3:单独遍历vlaue(这个操作不常用)
 */
public class MapDemo2 {
    public static void main(String[] args) {
        Map<String,Integer> map = new HashMap();
        //给map存入值
        map.put("语文", 99);
        map.put("数学", 98);
        map.put("英语", 97);
        map.put("物理", 96);
        map.put("化学", 99);
        System.out.println(map);
        //1.单独遍历key
        /*
        * Set keySet()
        * 将当前Map中的所有的key以一个Set集合的形式返回
        * */
        Set<String> keySet = map.keySet();
        for (String key : keySet) {
            System.out.println("key:"+key);
            System.out.println("value:"+map.get(key));
        }
        //2.遍历每一组键值对
        /*
        * Map中将一对key和value封装为entry对象
        * 所以可以调用entrySet获取Map中的所有的entry
        * */
        Set<Map.Entry<String, Integer>> entries = map.entrySet();
        for (Map.Entry<String, Integer> entry : entries) {
            //返回entry中存储的key
            String key = entry.getKey();
            //返回entry中存储的value
            Integer value = entry.getValue();
            System.out.println(key+":"+value);
        }
        //3.单独遍历value
        /*
        * Collection values()
        * 将给定的Map的所有的value以一个集合的形式返回
        * */
        Collection<Integer> values = map.values();
        for (Integer value : values) {
            System.out.println("value:"+value);
        }
    }
}
